package com.sinog.front.feign.biz;

import com.sinog.core.model.UserDTO;
import com.sinog.core.utilbean.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * @desc 双列管feign
 * @author dh
 * @date 2020-02-16-15:04
 */
@FeignClient("sinog2c-biz")
public interface SlgInfoService {

    /**
     * 安置帮教管理 - 双列管 - 户籍地 - 列表
     * @param pageIndex pageIndex
     * @param pageSize pageSize
     * @param queryData queryData
     * @return String
     */
    @RequestMapping("/azbjgl/slg/hjlist")
    String getSlgHjd(
            @RequestParam("pageIndex") Integer pageIndex,
            @RequestParam("pageSize") Integer pageSize,
            @RequestParam("queryData") String queryData);

    /**
     * 安置帮教管理 - 双列管 - 户籍地 - 司法所双列管申请
     * @param data data
     * @param user user
     * @return Result
     */
    @RequestMapping("/azbjgl/slg/apply")
    Result applySlg(@RequestParam("data") String data,@RequestBody UserDTO user);

    /**
     * 根据犯罪编号查询ablieguan实体
     * @param priNum priNum
     * @return String
     */
    @PostMapping("/azbjgl/slg/applyinfo")
    String getApplyInfo(@RequestParam("priNum") String priNum);

    /**
     * 安置帮教管理 - 双列管 - 居住地 - 列表
     * @param pageIndex pageIndex
     * @param pageSize pageSize
     * @param queryData queryData
     * @param user user
     * @return String
     */
    @RequestMapping("/azbj/azbjgl/slg/jzdlist")
    String getSlgJzd(
            @RequestParam("pageIndex") Integer pageIndex,
            @RequestParam("pageSize") Integer pageSize,
            @RequestParam("queryData") String queryData,@RequestBody UserDTO user);

    /**
     * 根据犯罪编号查询ablieguan实体部分信息
     * @param priNum priNum
     * @return String
     */
    @PostMapping("/azbj/azbjgl/approvoinfo")
    String getApproveInfo(@RequestParam("priNum") String priNum);

    /**
     * 安置帮教管理 - 双列管 - 居住地 - 司法所审批通过
     * @param data data
     * @param user user
     * @return Result
     */
    @PostMapping("/azbj/azbjgl/jzdapprov/save")
    Result saveJzdAppro(@RequestParam("data") String data,@RequestBody UserDTO user);

    /**
     * 根据犯罪编号和ID查询ablieguan实体部分信息
     * @param priNum priNum
     * @param id id
     * @param user user
     * @return String
     */
    @PostMapping("/azbj/azbjgl/detailsinfo")
    String getDetailsInfo(
            @RequestParam("priNum") String priNum,@RequestParam("id") String id,@RequestBody UserDTO user);

    /**
     * 根据犯罪编号查询ablieguan实体部分信息
     * @param priNum priNum
     * @return Result
     */
    @RequestMapping("/azbj/azbjgl/slg/getremoveslginfo")
    Result getRemoveSlgInfo(@RequestParam("priNum") String priNum);

    /**
     * 安置帮教管理 - 双列管 - 居住地 - 解除双列管
     * @param data data
     * @param user user
     * @return Result
     */
    @PostMapping("/azbj/azbjgl/slg/removeslg")
    Result removeSlg(@RequestParam("data") String data,@RequestBody UserDTO user);

    /**
     * 安置帮教管理 - 双列管 - 居住地 - 解除双列管 (检查是否存在户籍地址)
     * @param priNum priNum
     * @return Result
     */
    @GetMapping("/azbj/slg/checkPlaceVillexist")
    Result checkplaceVill(@RequestParam("priNum") String priNum);
}